[IA64] kexec: Map EFI regions into the same place they are maped into in Linux
authorIsaku Yamahata <yamahata@valinux.co.jp>
Tue, 22 Jul 2008 03:15:02 +0000 (12:15 +0900)
committerIsaku Yamahata <yamahata@valinux.co.jp>
Tue, 22 Jul 2008 03:15:02 +0000 (12:15 +0900)
commit55ec402bbb13700c3faf8fc0dacc8303c7e41f61
treec3d237c5d0213c397980f4274c6cab4f8d86a3fb
parent59dc86e4eb4d43a114f48965e55adfd6e0b40c2c
[IA64] kexec: Map EFI regions into the same place they are maped into in Linux

Map EFI regions into the same place they are maped into in Linux

This is because of an unfortunate problem with the way that EFI interacts
with Kexec. The call to map the EFI regions may only be made once. This
means that after Kexec the EFI regions must be mapped into the same region
that they were mapped into prior to Kexec.

This is not usually a problem when kexecing from xen to xen or from linux
to linux, as the mapping will be the same. However when kexecing from xen
to linux or linux to xen, the mapping is different, and the problem
manifests.

So far Magnus Damm and I have come up with three different ideas for
resolving this problem.

1. Leave the EFI in physical mode
   - This is nice and simple
   - There is a potential performance hit, but PAL calls are not
     made very often, so it shouldn't be a problem
   - I have patches to do this, some of which are in the
     series that accompany this patch.
   - The SGI people tell me that it won't work on SN because
     it allows the OS to provide EFI (or SAL?) code.

2. Always map EFI into the space that Linux uses
   - Not so simple
   - Requires Xen to jump through some hoops
   - But leaves Linux unmodified
   - But it will break if Linux ever changes its mapping
   - This patch series implements this change

3. Always map EFI to some agreed space
   - Similar to 2. but less likely to break in the future
   - But it requires Xen and Linux to agree on a space to be used
   - Reqires both Xen and Linux to be modified

Cc: Isaku Yamahata <yamahata@valinux.co.jp>
Cc: Tristan Gingold <tgingold@free.fr>
Cc: Alex Williamson <alex.williamson@hp.com>
Cc: Aron Griffis <aron@hp.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
xen/arch/ia64/linux-xen/efi.c
xen/include/asm-ia64/xenpage.h